#ifndef __BASE_CLASS_HH__
#define __BASE_CLASS_HH__

//boost
#include <boost/shared_ptr.hpp>

namespace Reflection
{

/**
 * @brief
 */
class BaseClass
{
    public:
        typedef boost::shared_ptr< BaseClass >          Ptr;
        typedef boost::shared_ptr< const BaseClass >    PtrC;

    public:
        virtual ~BaseClass( void )
        {
        }
        
        virtual const BaseTypeDcl& getTypeDcl( void ) = 0;
};

} //namespace Reflection

#endif //__BASE_CLASS_HH__